ModBus kommunikációs protokoll
A Modbus egy általános kommunikációs protokoll, amelyet ma széles körben alkalmaznak az ipari vezérlésben. Ennek a protokollnak köszönhetően a vezérlők kommunikálhatnak egymással vagy más eszközökkel hálózaton keresztül (például Ethernet). A Modbus protokoll a fő kommunikációs technológiát használja, azaz a fő eszköz aktívan lekérdezi és működteti a készüléket. A főeszköz által használt protokollt általában Modbus Master-nak nevezik, a készülék által használt protokollt pedig Modbus Slave-nak nevezik. A tipikus fő berendezések közé tartoznak az ipari vezérlők és ipari vezérlők; Tipikus programozható vezérlő eszközök, mint plc stb. A Modbus kommunikációs fizikai interfész sorozati portokat (beleértve az RS232 és RS485) vagy Ethernet portokat választhat. Kommunikációja a következő folyamatot követi:
• A főeszköz kérést küld az eszközről
● Elemzze és feldolgozza a kéréseket a fő eszközről, majd küldje az eredményeket a fő eszközre
● Ha bármilyen hiba történik, a készülék visszaad egy rendkívüli funkció kódot
ModBus kommunikációs protokoll szoftver
A ModBus kommunikációs protokoll szoftver termékei elsősorban az ARM9 beágyazott alaplap környezetében alkalmazhatók, amelyek gazdag sorozati portokkal, hálózati erőforrásokkal, univerzális GPIO interfészekkel és erős feldolgozási kapacitással rendelkeznek. A ModBus kommunikációs protokoll szoftverrel együtt nagyon kényelmesen létrehozhatja a ModBus kommunikációs előírásoknak megfelelő fő (Master) és eszköz (Slave) alkalmazási platformot. A ModBus kommunikációs szoftvercsomag két független részre oszlik: a „ModBus Master” és a „ModBus Device Side Protocol Software” (modbus_Slave). Jelenleg a ModBus kommunikációs protokoll szoftverek WinCE környezetben futnak, mind C-funkció plusz statikus LIB könyvtár formájában állnak rendelkezésre az ügyfeleknek. Fő jellemzői a következők:
Kiválóan alkalmas valós idejű ipari alkalmazásokhoz
Támogatja a sorozatport alapú ModBus alkalmazásokat vagy a TCP alapú ModBus alkalmazásokat
RTU átviteli mód
● Támogatja a legtöbb Modbus funkciókód műveletet, beleértve a tekercs, a diszkrét kapcsolók bemeneti biteinek műveletét és a nyilvántartás bájtjainak műveletét
• Támogatja a műsorszórási címeket
Rugalmas beállítás a ModBus kommunikáció ideje
● A kommunikációban az átviteli protokollok hibakódjainak részletes információi
ModBus szoftver kommunikációs diagram

A ModBus szoftver által támogatott funkciókódok
Funkció kód |
Leírás |
1 |
Olvassa el az egyes tekercseket |
2 |
Diszkrét mennyiségi bemenet olvasása |
3 |
Több nyilvántartás olvasása |
4 |
A bemeneti nyilvántartás elolvasása |
5 |
Egyetlen tekercs írása |
6 |
Egyetlen nyilvántartás írása |
15 |
Több tekercs írása |
16 |
Több nyilvántartás írása |
22 |
Az írási nyilvántartás blokkolása |
23 |
Regisztra olvasása/írása |
A szoftver alapvető használata
Az alkalmazás használatának megkönnyítése és a különböző kommunikációs médiumok következetes kódformájának fenntartása érdekében az Intel által kínált ModBus protokollsoftver API-funkciói (beleértve a modbus_Master és a modbus_Slave) támogatják a sorozatport és a TCP alapú Modbus protokollt egyidejűleg. Az alkalmazásnak csak különböző paraméterekkel kell megkülönböztetnie, amikor az inicializáló funkciót hívja. A paraméterekre vonatkozó utasításokat lásd a megfelelő fejfájlokat: modbus_Master.h és modbus_Slave.h
Modbus_Master alkalmazás
A Modbus kliens módjának alkalmazása elsősorban a kérések előkészítése és a kérések küldése a kiszolgálóeszközökre, és a kiszolgáló válaszára várva. Az ilyen alkalmazások fejlesztése során a felhasználó a Modbus szabványos irodalomra és az ellenőrzött eszközök kommunikációs felületének adatkézikönyvére hivatkozhat, és közvetlenül a modbus_Master csomagot hívhatja fel, amely a szerveres eszközök hozzáféréséhez és ellenőrzéséhez biztosítja a megfelelő működési API funkciókat. Az ilyen alkalmazások fejlesztéséhez a felhasználónak csak a modbus_master.h/modbus_master.lib-ot kell tartalmaznia.
A modbus_slave alkalmazása
A ModBus szerver mód alkalmazásaként elsősorban a ModBus alkalmazás üzeneteinek elemzésére és válaszozására van szükség, de ez még mindig csak a ModBus teljes kommunikációjának része, a másik része pedig az alkalmazás adataihoz való hozzáférésre van szükség, és ez a rész a felhasználónak kell meghatározni. Az ügyfelek kényelmesebb használata érdekében ezek a felhasználói felületi funkciók automatikus betöltése a modbus_Slave csomagban funkció mutató formájában történik, amely összekapcsolja a felhasználói alkalmazás adatfeldolgozását a ModBus alkalmazás üzenetválaszával. A felhasználónak csak meg kell határoznia ezeket az interfész-funkciókat az igényeinek megfelelően, az egyes funkciók konkrét definícióját egy elkötelezett CPP-fájlon keresztül kell megvalósítania: a DataProvider.cpp.
Ebből látható, hogy egy ilyen alkalmazás fejlesztéséhez két részt kell tartalmaznia, az egyik részt a modbus_slave.h/modbus_slave.lib által definiált API függvény. A másik rész a DataProvider.h / DataProvider.cpp által definiált felhasználói adatfelület-függvény, amelyben az interfész-függvény a felhasználónak a DataProvider.cpp-ben kell konkrétan megvalósítania.
Annak érdekében, hogy időben válaszoljon a ModBus alkalmazás üzeneteire, figyelembe kell venni, hogy programozás során egy szálat kell tervezni, amely ismételten hívja a modbus_Slave végrehajtási függvényt, amely blokkolási módban van.
Például:
(1) Indítsa el a modbus eszközfél protokollt
hPort = mbusSlave_StartupServer(_T)'*'), 1, 10000, mbusSlave_Interface );
Vagy...
hPort=mbusSlave_StartupServer(_T)"COM3:9600-8-1-0"),1,10000, mbusSlave_Interface );
(2) Serverloop végrehajtási funkció hívása a kérésre
míg( 1 )
{
//Hívja a végrehajtási funkciót a ModBus üzenetek elemzéséhez és válaszozásához.
eredmény = mbusSlave_ServerLoop( hPort );
ha(eredmény!=0)//Ellenőrizze, hogy hibát ad-e vissza
{
//Hibakezelés: Ez a példa egy szöveges üzenet a hibakódok megszerzésére és nyomtatására
wcscpy( szText, mbusSlave_GetErrorText( eredmény)) ;
i1 = wcslen( szText );
ha(i1>0)
{
wcstombs( strText, szText, i1 );
nyomtatás(hibakód: %s! n'Stretex);
}
}
}
A korábbi ModBus kommunikációs protokoll szoftver C-funkció plusz statikus könyvtár (modbus.lib vagy libmodbus.a fájl) formájában érhető el az ügyfeleknek. Mivel egyre több ügyfél használja a ModBus kommunikációs protokollt, különösen a vezérlő protokollsoftvert (modbus_Master) dinamikus könyvtár formájában (modbus_Master.dll vagy libmbusmaster.so fájl) előre telepíti az ENG beágyazott ipari vezérlő alaplap kernel rendszerébe, hogy megkönnyítse az ügyfél alkalmazásainak hívását. Az előre telepített Modbus protokoll vezérlőlapok az ESM sorozat összes alaplapját tartalmazzák (ESM6802, ESM6800, ESM335x, ESM928x stb.).
Kapcsolódó hivatkozások
| 4-20mA áramgyűrűgyűjtő alkalmazás | Modbus vezérlő kommunikációs protokoll szoftver a WinCE alatt | |
| Modbus eszközfél protokoll szoftver WinCE alatt | A beágyazott Linux vezérlőlap támogatja a Modbus vezérlőprotokollt | |
| Modbus eszközfél protokoll szoftver bemutatása Linux alatt | Az ESM6802 támogatja a Qt MODBUS programozást | |
| A Modbus protokoll előre telepítése az ENG alaplapjára |
